package cn.jbolt.core.para;

import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.upload.UploadFile;

/**
 * 参数校验接口
 *
 * @ClassName: IJBoltParaValidator
 * @author: JFinal学院-小木 QQ：909854136
 * @date: 2019年12月5日
 */
public interface IJBoltParaValidator {
	/**
	 * 判断存在有效参数
	 * @param params
	 * @return
	 */
	public boolean hasOk(Object... params);

	/**
	 * 判断存在无效参数
	 * @param params
	 * @return
	 */
	public boolean hasNotOk(Object... params);
	/**
	 * 判断Object参数有效性
	 * @param param
	 */
	public boolean isOk(Object param);
	/**
	 * 判断Object参数是否无效
	 */
	public boolean notOk(Object param);
	/**
	 * 判断record参数有效性
	 * @param record
	 */
	public boolean isOk(Record record);
	/**
	 * 判断record参数是否无效
	 * @param record
	 */
	public boolean notOk(Record record);
	/**
	 * 判断model参数有效性
	 * @param model
	 */
	public boolean isOk(Model<? extends Model<?>> model);
	/**
	 * 判断model参数是否无效
	 * @param model
	 */
	public boolean notOk(Model<? extends Model<?>> model);
	/**
	 * 判断Object参数为Null
	 * @param param
	 */
	public boolean isNull(Object param);
	/**
	 * 判断Object参数不为Null
	 */
	public boolean notNull(Object param);

	/**
	 * 判断Object[]参数有效性
	 * @param param
	 * @return
	 */
	public boolean isOk(Object[] param);

	/**
	 * 判断Object[]参数是否无效
	 * @param param
	 * @return
	 */
	public boolean notOk(Object[] param);

	/**
	 * 判断上传文件类型不是图片
	 * @param file
	 * @return
	 */
	public boolean notImage(UploadFile file);

	/**
	 * 判断上传文件类型是否为图片
	 * @param file
	 * @return
	 */
	public boolean isImage(UploadFile file);

	/**
	 * 判断上传文件是图片
	 * @param contentType
	 * @return
	 */
	public boolean isImage(String contentType);

	/**
	 * 判断上传文件不是图片
	 * @param contentType
	 * @return
	 */
	public boolean notImage(String contentType);

	/**
	 * 判断上传文件是excel
	 * @param file
	 * @return
	 */
	public boolean notExcel(UploadFile file);

	/**
	 * 判断上传文件不是excel
	 * @param file
	 * @return
	 */
	public boolean isExcel(UploadFile file);
}
